package pck_tramitedocu.pck_src.pck_facade;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import net.sf.jasperreports.engine.JasperPrint;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Bandeja_Documento;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Bandeja_destinatarios_derivacion;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Documento_Historial;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Documento_Tipo;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Email;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Empresa;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Fechas;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Motivo_Deriva;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Nombre_Anio;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Notificaciones;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Posibilidad;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Trabajador;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Unidad_Organizativa;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Usuario_Tipo;
import pck_tramitedocu.pck_src.pck_pojos.Cls_Visto;
import pck_tramitedocu.pck_src.pck_pojos.Cls_documento;
import pck_tramitedocu.pck_src.pck_pojos.TramiteDocuException;

public abstract interface itf_facade
{
  public abstract DataSource getConectionSistema();

  public Object validarUsuario(Map<String, Object> map);

  public abstract boolean agregarUsuario(Cls_Trabajador paramCls_Trabajador);

  public abstract boolean actualizarUsuario(Cls_Trabajador paramCls_Trabajador);

  public abstract List obtenerMenuUsuario(String paramString);

  public abstract boolean grabarMenuUsuario(String paramString, List paramList);

  public abstract ArrayList<Cls_Trabajador> obtenerTodosUsuariosFacade(Map<String, String> paramMap);

  public abstract int obtenerCantidadTrabajadoresAreaFacade(Map<String, String> paramMap);

  public abstract int obtenerCantidadTrabajadoresRrhhFacade(Map<String, String> paramMap);

  public abstract ArrayList<Cls_Trabajador> obtenerTodosUsuariosEpsGrauFacade(Map<String, String> paramMap);

  public abstract ArrayList<Cls_Trabajador> obtenerTrabajadorCargosEpsGrauFacade(Map<String, String> paramMap);
  
  public abstract int obteneTipoUsuarioDeTrabajadorFacade(Map<String, String> paramMap);

  public abstract ArrayList<Cls_Trabajador> obtenerTodosUsuariosMailFacade(Map<String, String> paramMap);

  public abstract int obtenerCantidadTrabajadoresMailRrhhFacade(Map<String, String> paramMap);

  public abstract ArrayList<Cls_Trabajador> obtenerTodosUsuariosParaFirmaEpsGrauFacade(Map<String, String> paramMap);

  public abstract ArrayList<Cls_Trabajador> obtenerTodosUsuariosParaComisionEpsGrauFacade(Map<String, String> paramMap);

  public abstract String agregarUsuarioEnPostgrestFacade(Cls_Trabajador paramCls_Trabajador);

  public abstract ArrayList<Cls_Trabajador> obtenerTodosJefaturasParaFirmaEpsGrauBusiness(Map<String, String> paramMap);

  public abstract String agregarDocumentoFacade(Cls_documento paramCls_documento) throws TramiteDocuException;

  public abstract String actualizarDocumentoFacade(Cls_documento paramCls_documento) throws TramiteDocuException;

  public abstract boolean eliminarDocumentoFacade(String paramString);

  public abstract Cls_documento obtenerDocumentoConTodaInformacionFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_documento> obtenerTodosDocumentoFacade(Map<String, String> paramMap);

  public abstract int obtenerCantidadDeRegistrosFacade(Map<String, String> paramMap);

  public abstract JasperPrint obtenerDocumentoPrintFacade(Map<String, String> paramMap);

  public abstract ArrayList<Cls_Bandeja_Documento> obtenerTodosDocumentoPersonalesFacade(Map<String, String> paramMap);

  public abstract int obtenerCantidadDeDocumentosPersonalesFacade(Map<String, String> paramMap);

  public abstract Cls_Bandeja_Documento obtenerDocumentoPersonalBandejaFacade(Map<String, String> paramMap, Cls_Trabajador paramCls_Trabajador) throws TramiteDocuException;

  public abstract String actualizarBandejaDocumentoFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String delegarDocumentoDesdeBandejaFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract boolean necesitaGenerarFlashFacade(Map<String, String> paramMap);

  public abstract String agregarDocumentoExtensionFacade(Map<String, Object> paramMap);

  public abstract String dipararDocumentoDesdeBandejaParaVistoFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String dipararDocumentoDesdeBandejaParaVistoRechazadosFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String darVistoDocumentoDesdeBandejaParaRespuestaBusiness(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Documento_Historial> obtenerHistorialDocumentoFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract Cls_documento obtenerCabeceraHistorialDocumentoFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public  abstract int obtenerCantidadHistorialFacade(Map<String, String> map) throws TramiteDocuException;

  public abstract ArrayList<Cls_Visto> obtenerVistoDocumentoFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract String cerrarDocumentoFacade(Map<String, Object> paramMap);

  public abstract int puedeImprimirDocumentoFacade(Map<String, String> paramMap);

  public abstract String aprobarDocumentoFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract String agregarHistorialDocumentoFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String reiniciarContadorMensajesBandejaDocumentoFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Notificaciones> obtenerNotificacionesFacade(Map<String, String> paramMap);

  public abstract String actualizarDocumentoVistoFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String darPermisosImprimirFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String darPermisosModificarFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_documento> obtenerTodosDocumentoPersonalesDeAreaFacade(Map<String, String> paramMap);

  public abstract int obtenerCantidadDeDocumentosPersonalesAreaFacade(Map<String, String> paramMap);

  public abstract ArrayList<Cls_Bandeja_destinatarios_derivacion> obtenerDestinatariosDeDerivacionFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Usuario_Tipo> obtenerTipoUsuarioFacade();

  public abstract String obtenerThreeUsuarioFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract boolean agregarMenuTipoUsuarioDao(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Documento_Tipo> obtenerTipoDocumentoFacade(Map[] paramArrayOfMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Motivo_Deriva> obtenerTipoMotivoDerivaFacade();

  public abstract String insertarFeriadoFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract String eliminarFeriadoFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Fechas> obtenerDiasFeriadosFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String insertaAnioFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract String eliminarAnioFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract String modificarAnioFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Nombre_Anio> obtenerAniosFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract int obtenerCantidadAniosFacade() throws TramiteDocuException;

  public abstract int obtenerCantidadDiasFeriadosFacade() throws TramiteDocuException;

  public abstract ArrayList<Cls_Empresa> obtenerEmpresasFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract String insertarEmpresasFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract String eliminarEmpresasFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract String modificarEmpresasFacade(Map<String, Object> paramMap) throws TramiteDocuException;

  public abstract int obtenerCantidadEmpresasFacade(Map<String, String> paramMap) throws TramiteDocuException;

  public abstract ArrayList<Cls_Unidad_Organizativa> obtenerUnidadesFacade(Map<String, String> paramMap);

  public abstract int obtenerCantidadUnidadesFacade(Map<String, String> paramMap);

  public abstract String insertarComisionesFacade(Map<String, Object> paramMap);

  public abstract String modificarComisionesFacade(Map<String, Object> paramMap);

  public abstract String enviarMensaje(Cls_Email paramCls_Email) throws TramiteDocuException;

  public abstract String agregarBorradorFacade(Map<String, Object> mp_documento) throws TramiteDocuException;

  public abstract String eliminarPositBorradorDeBandejaFacade(Map<String, Object> mp_documento) ;
  
  public abstract ArrayList<Cls_documento> obtenerTodosDocumentoProyectosPendientesFacade(Map<String, String> map);

  public abstract ArrayList<String> obtenerAños();

  public abstract String obtenerErrorUsuarioFacade(Map<String, Object> map);

  public ArrayList<Cls_Posibilidad> obtenerPosibilidadEnvioFacade(String parametro);

  public ArrayList<Cls_Posibilidad> obtenerPosibilidadProyeccionFacade(String parametro);

  public ArrayList<Cls_Posibilidad> obtenerPosibilidadVistoBuenoFacade(String parametro);

}
